-
Notifications
You must be signed in to change notification settings - Fork 89
[Build] Add Jenkins pipeline to improve release preparation automation #3078
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Build] Add Jenkins pipeline to improve release preparation automation #3078
Conversation
|
This is currently a draft, but I have tested most steps of it already and plan to conduct a (almost) complete test of it tomorrow. |
7698433 to
7a988a7
Compare
The testing was successful and this is ready for submission. I have also asked the infra team to associate the eclipse-releng-bot mail with the corresponding bot account and make sure that it passes the ECA: In I-builds commits with that mail are pushed to the releng.aggregator directly without ECA validation, which is probably why this was never noticed. |
7a988a7 to
6bf2539
Compare
|
The verification build does not test this, thus submitting this now. With this also the |
6bf2539 to
31e1855
Compare
This introduces a new Jenkins job named `Prepare Next Development Cycle` that carries out many of the preparation tasks and aims to further enhance the release preparation automation. This includes - Updating the version of the Maven parent, all references to it and the Eclipse products - Updating the release version across build scripts - Updating the previous release version to the current Release-Candidate These tasks are currently done partly manually and partly automatically, but through a mixture of the (hidden) Jenkins job to create-milestones and distributed GH workflows that perform the Maven version updates upon the creation of new milestones. Having one central job simplifies to understand the preparation process. It also ensures that the steps are always executed in the right order. The script 'getPreviousRelease.sh' is not considered as it seems to be unused and is intended to be removed soon.
31e1855 to
1480f37
Compare
|
Most of the build worked, but it wasn't a complete success: Additionally the following changes are missing: |
|
|
This is missing as well: |
Fix the following bugs discovered during the first usage during the preparation of the current development cycle: - Skip unchanged submodules when creating PRs - Skip ready-only repositories when creating milestones in GH Follow-up on - eclipse-platform#3078
Fix the following bugs discovered during the first usage during the preparation of the current development cycle: - Skip unchanged submodules when creating PRs - Skip ready-only repositories when creating milestones in GH Follow-up on - eclipse-platform#3078
Fix the following bugs discovered during the first usage during the preparation of the current development cycle: - Skip unchanged submodules when creating PRs - Skip ready-only repositories when creating milestones in GH Follow-up on - #3078
|
The automated preparation pipeline also missed and could also do (at least the job-dsl update would be simple) |
|
The encountered definitiv bugs in the release preparation pipeline have been fixed with The new stream repositories are now properly created, initially with a reference to the previous RC, via and this reference is also properly cleaned up when successful I builds are added since With that the preparation pipeline should be fully functional in the sense that all kind of version increments and preparatory steps are performed in a way that the Maven parent version increments changes created for all sub-modules should also receive the then required version increments automatically. From now on the pipeline can be extended to also handle cases of missing files we have collected in the previous round. Precisely these are the following files
Some of these missing updates can be made obsolete by replacing the updated files with something that doesn't need to be updated and some have to be added to the preparation pipeline. I'll update this comment with the corresponding solutions when they are implemented. |
This introduces a new Jenkins job
Prepare next Development Cyclethat carries out many of the preparation tasks and aims to further enhance the release preparation automation. This includesThese tasks are currently done partly manually and partly automatically, but through a mixture of the (hidden) Jenkins job to create-milestones and distributed GH workflows that perform the Maven version updates upon the creation of new milestones.
Having one central job simplifies the understanding of the preparation process.
This PR is just the first step and it's the goal to move more preparation steps into this Jenkins job in order to automate currently manually executed step or to reduce the number of involved Jenkins jobs. All of this also ensures that the steps are always executed in the right order.
When applying the version updates, the script 'getPreviousRelease.sh' is not considered as it seems to be unused and is intended to be removed soon.